package datos
{
	import mx.collections.ArrayCollection;
	import mx.collections.Sort;
	import mx.collections.SortField;

	public class Sistema
	{
		
		public static final var QUIMICA = "QUÍMICA";
		public static final var INGENIERIA = "INGENIERÍA";
		public static final var CIENCIAS_SOCIALES = "CIENCIAS SOCIALES";
		
		private static var _instancia = null;
		
		private var carreras:ArrayCollection();
		private var estudiantes:ArrayCollection();
				
		
		public static function get instancia() : Sistema {
			if (_instancia == null) {
				_instancia = new Sistema();
			}
			return _instancia;
		}	
		
		private function Sistema()
		{
			carreras = new ArrayCollection();
			estudiantes = new ArrayCollection();
		}
		
		public function cargar() : void {
			cargarCarreras();
			
			cargarEstudiantes();
			
		}
		
		private function cargarEstudiantes() : void {
			var estudiante:Estudiante = new Estudiante();
			estudiante.nombre = "Rodrigo";
			estudiante.apellido = "Juliani Calero";
			estudiante.cedula = "4538644";
			estudiante.digitoVerificacion = "3";
			estudiante.contrasena = "saint6ya";
			estudiantes.addItem(estudiante);
		}
		
		private function cargarCarreras() : void {
			
		}
		
		public function getCarreras(facultad:String, criterio:String) : ArrayCollection {
			if (facultad != INGENIERIA) { //la unica facultad que tiene carreras en el prototipo es la de ingenieria
				return new ArrayCollection();
			}
			if (criterio.length == 0) { //no hay criterio, buscar todas las carreras.
				return this.carreras;
			}
			var ret:ArrayCollection = new ArrayCollection();
			for each (var carrera:Carrera in carreras) {
				if (carrera.nombre.lastIndexOf(criterio) >= 0 || carrera.codigo.toString().lastIndexOf(criterio) >= 0) {
					ret.addItem(carrera);
				}
			}
			
			var dataSortField:SortField = new SortField();
			dataSortField.name = "nombre";
			dataSortField.numeric = false;
			
			/* Create the Sort object and add the SortField object created earlier to the array of fields to sort on. */
			var stringDataSort:Sort = new Sort();
			stringDataSort.fields = [dataSortField];
			
			/* Set the ArrayCollection object's sort property to our custom sort, and refresh the ArrayCollection. */
			ret.sort = stringDataSort;
			ret.refresh();			
		}
		
		
		
		
		
		
	}
}